ASP.NET WebForms - 如何授权访问页面
ASP.NET WebForms - How to Authorise access to a page
在最新的 ASP.NET WebForms 应用程序中,我们不再使用 RoleManager 等(据我所知)那么我们如何授权特定角色访问网页?
在 MVC 中,我会使用 Authorize 属性,但 WebForms 中不存在该属性,所以我不知所措 - 有什么想法吗?
研究使用 the/a web.config 文件和授权元素。为此,您可以在任何目录中创建一个 web.config 文件(即,您可以在整个站点中拥有多个 web.config 文件)。
一个 link(也查看其他 link):
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));
在特定网络表单上 Page_Load 事件检索角色
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("............");
}
}
如果您想要文件夹级别的授权,那么不要在网络表单上检查角色,而是在该文件夹的 web.config 文件中指定角色
<authorization>
<allow roles="Owner"/>
<deny users="*"/>
</authorization>
在最新的 ASP.NET WebForms 应用程序中,我们不再使用 RoleManager 等(据我所知)那么我们如何授权特定角色访问网页?
在 MVC 中,我会使用 Authorize 属性,但 WebForms 中不存在该属性,所以我不知所措 - 有什么想法吗?
研究使用 the/a web.config 文件和授权元素。为此,您可以在任何目录中创建一个 web.config 文件(即,您可以在整个站点中拥有多个 web.config 文件)。
一个 link(也查看其他 link): 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));
在特定网络表单上 Page_Load 事件检索角色
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("............");
}
}
如果您想要文件夹级别的授权,那么不要在网络表单上检查角色,而是在该文件夹的 web.config 文件中指定角色
<authorization>
<allow roles="Owner"/>
<deny users="*"/>
</authorization>