2013-02-13 4 views
2

У меня есть страница входа в проект MVC, и я создал авторизацию config this.авторизация в проекте MVC

<authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" defaultUrl="~/Home/Index"/> 
    </authentication> 

    <system.web> 
    <authorization> 
     <deny users="?"/> 
    </authorization> 
    </system.web> 

Как я могу получить доступ на странице регистрации?

ответ

3

В зависимости от того, какой версии MVC вы используете обычную практику я вижу сейчас в MVC3/4 является вместо ограничения доступа к определенным действиям, чтобы ограничить доступ ко всем действиям, путь добавления Authorize() в качестве глобального а затем предоставить доступ к нескольким действиям выбора с использованием атрибута AllowAnonymous(), чтобы действовать как белый список действий, которые не нуждаются в защите. (Как вход, регистрация и т. Д.).

global.asax

protected void Application_Start() 
{ 
    filters.Add(new AuthorizeAttribute()); 
} 

AccountsController.cs

[AllowAnonymous] 
public ActionResult Login() 
{ 
    //Perform login... 
} 

Тогда вы web.config просто имеет этот

<authorization> 
    <allow users="*" /> 
</authorization> 
+0

Это авторизация на Windows? – user2068104

+0

Это может быть так. Но это только авторизация, чтобы определить, кто может получить доступ к чему. Пользователь может быть аутентифицирован с использованием проверки подлинности Windows. В слове есть тонкая разница, но они разные. Аутентификация - это доказательство того, кто вы (вход в систему), и все. Авторизация - это часть, которая определяет, что вы можете сделать. Этот вопрос предназначен только для авторизации, в то время как аутентификацией могут быть Windows, Forms или некоторые другие внешние службы, такие как OpenAuth. –

0

По умолчанию вы должны пойти к Register() методу действия в Account контроллера

// GET:/Account/Регистрация

По вашему web.config: попробуйте добавить это к сети. config до <system.web> тег.

<location allowOverride="true" path="Account/Register"> 
    <system.web> 
     <authorization> 
     <allow users="?" /> 
     <deny users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
+0

Это 's does not work – user2068104

+0

Это отлично работает для меня в новом проекте, какая у вас ошибка или неправильное поведение? – testCoder

+0

Я не могу открыть страницу регистрации ... – user2068104