我正致力于在ASP.net中创建角色系统。 现在它工作正常,因为我可以将角色与用户关联
正如你在这里看到的那样。
现在我的问题是我应该怎样做才能使基于角色的访问工作。 因为某种方式不起作用。 它将我作为超级管理员发送回登录页面
[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
private void button1_Click(object sender, EventArgs e)
{
try
{
Process p = Process.Start(textBox1.Text);
p.WaitForInputIdle();
SetParent(p.MainWindowHandle, panel1.Handle);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
的Web.config
[Authorize(Roles = "Superadmin")]
public ActionResult Upload()
{
return View();
}
我希望有人可以帮助我。
格尔茨
答案 0 :(得分:0)
您需要在UserPrincipal
文件
Global.asax
中添加角色
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
// Read the roles from cookie
string[] roles = authTicket.UserData.Split(new Char[] { ',' });
GenericPrincipal userPrincipal = new GenericPrincipal(new GenericIdentity(authTicket.Name), roles);
Context.User = userPrincipal;
}
}
创建自定义Authorize
属性并覆盖OnAuthorization
方法
public override void OnAuthorization(AuthorizationContext filterContext)
{
// Check if the user is authorized to access else redirect to unauthorized page
base.OnAuthorization(filterContext);
}