在最新的ASP.NET WebForms应用程序中,我们不再使用RoleManager等(据我所知),那么如何为特定角色授权访问网页?
在MVC中,我会使用Authorize属性,但在WebForms中不存在,所以我很困惑 - 有什么建议吗?
在MVC中,我会使用Authorize属性,但在WebForms中不存在,所以我很困惑 - 有什么建议吗?
查看使用 web.config 文件和授权元素。您可以在任何目录中创建一个 web.config 文件来实现此目的(即,您可以在整个站点上拥有多个 web.config 文件)。
一个链接(还可以查看其他链接): https://msdn.microsoft.com/en-us/library/8d82143t%28v=vs.85%29.aspx
尝试使用此代码在登录时将角色传递给FormsAuthenticationTicket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, UserName.Text, DateTime.Now, DateTime.Now.AddMinutes(2880), false, role, FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
{
cookie.Expires = ticket.Expiration;
}
Response.Cookies.Add(cookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, false));
protected void Page_Load(object sender, EventArgs e)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket ticket = id.Ticket;
string userData = ticket.UserData;
string[] temp = userData.Split(',');
role=temp[0];
if (role!="Owner")
{
Response.Write("............");
}
}
<authorization>
<allow roles="Owner"/>
<deny users="*"/>
</authorization>