CSharp - 在角色上,重定向用户基于?

  显示原文与译文双语对照的内容
0 0

嗨,我在设置网络应用程序管理模块时遇到问题

  1. 我在系统管理和技术上有两个角色
  2. 如果进入管理模块,系统会看到他是管理员还是不是管理员
  3. 如果用户不是管理员将重定向他到页面

    抱歉,你无法访问这里网页 !

我使用 Web.Config 限制对目录管理员的访问

<?xml version="1.0"?>
<configuration>
 <system.web>
 <authorization>
 <allow roles="admin"/>
 <deny users="*"/>
 </authorization>
 </system.web>
</configuration>

我也有 C# 代码来检查登录的用户是管理员还是其他用户

protected void Page_Load(object sender, EventArgs e)
 {
 if (HttpContext.Current.User.Identity.IsAuthenticated)
 {
 if (Page.User.IsInRole("admin"))
 {
 if (!Page.IsPostBack)
 {
 DisplayRolesInGrid();
 }
 }
 if(!Page.User.IsInRole("admin"))
 {
 Response.Redirect("/accessPage.aspx");
 }
 }
 }
时间:原作者:5个回答

0 0

不要把这两种角色管理混为一谈。 它们是 Web.Config 中的每个 other.One,而另一个是通过 C# 进行编码的。 只要删除 Web.Config 访问部分并使用 codein Page_Load函数就可以了。

protected void Page_Load(object sender, EventArgs e)
{
 if (Page.User.IsInRole("admin"))
 {
//all is good, do not do anything
//if you want to initialized something, do it here
 }
 else
 {
//opps you do not have access here, take him somewhere else
 Response.Redirect("/accessPage.aspx");
 }
}
原作者:
0 0

我不知道你的问题是什么但我至少能看到一个问题: <deny users="*"/> 意味着拒绝所有人。应该是 <deny users="?"/> 来保留未经认证的,然后确保技术用户不允许。

原作者:
...