Как написать свой AuthorizeTag?

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

Теперь я попытался сделать это

открытый класс MyTest: AuthorizeAttribute {

protected override bool AuthorizeCore(HttpContextBase httpContext)
{
    if (httpContext == null) throw new ArgumentNullException("httpContext");

    // Make sure the user is authenticated.
    if (httpContext.User.Identity.IsAuthenticated == false)
    {
        return false;
    }
    else
    {
        return false;
    }
}

}

Я тогда в моем представлении по умолчанию у меня есть это.

FormsAuthentication.SetAuthCookie("xiao", true);

тогда у меня другой вид

[MyTest()] public ActionResult About() { return View(); }

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

"LogOn?ReturnUrl=%2fHome%2fAbout"

но суть в том, что я все еще вижу страницу (и все содержимое). Когда я должен увидеть как минимум вашу неавторизованность или что-то в этом роде.

Что я делаю неправильно?

Спасибо

Хорошо, теперь это работает, но я до сих пор не знаю, как передавать роли.


person xiao    schedule 28.09.2009    source источник
comment
Почему вы отказываетесь от членства в asp.net?   -  person rick schott    schedule 28.09.2009
comment
Это не соответствует моим потребностям. У меня есть вещи, которые он считает повторяющимися именами пользователей, поскольку я использую больше, чем имя пользователя, для определения пользователя. Поскольку я делаю это, я не могу использовать какой-либо встроенный метод. Я должен написать их все снова. Мне также не нужно большинство таблиц, которые он генерирует.   -  person xiao    schedule 28.09.2009


Ответы (2)


Вы можете внедрить специального поставщика членства и избавить себя от хлопот. .

person rick schott    schedule 28.09.2009

Также будет полезен поставщик настраиваемых ролей. .

person The King    schedule 29.09.2009