Роли аутентификации не работают в ASP.NET MVC - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь назначить роли регистрирующемуся пользователю, но он не работает.

Я пытался создать запрос проверки подлинности формы с ролью пользователя, но он не работает

Код контроллера:

var userinfo = opidb.user_info.Where(a => a.user_email.Equals(mail)).FirstOrDefault();

var userroleinfo = opidb.user_role.Where(a => a.role_id == userinfo.user_role).FirstOrDefault();
var authticket = new FormsAuthenticationTicket(1, userinfo.user_id.ToString(), DateTime.Now, DateTime.Now.AddMinutes(10), false, "Admin");

string encryptedticket = FormsAuthentication.Encrypt(authticket);

var authcookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedticket);
System.Web.HttpContext.Current.Response.Cookies.Add(authcookie);

FormsAuthentication.SetAuthCookie (x.user_name, false);

Global.asax.cs код:

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
    HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];

    if (authCookie == null || authCookie.Value == "")
            return;

    FormsAuthenticationTicket authTicket;

    try
    {
        authTicket = FormsAuthentication.Decrypt(authCookie.Value);
    }
    catch
    {
        return;
    }

    // retrieve roles from UserData
    string[] roles = authTicket.UserData.Split(';');

    if (Context.User != null)
        Context.User = new GenericPrincipal(Context.User.Identity, roles);
}

Я ожидаю, что код должен назначитьроль для пользователя и на основании этого я могу ограничить пользователя в разных областях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...