аутентификация форм asp.net vb - PullRequest
0 голосов
/ 06 октября 2011

У меня есть страница входа, которая является домашней страницей, поэтому она находится по адресу www.domainname.com

, когда кто-то заходит на эту страницу, он добавляет возвратную строку к строке, чтобы они находились по адресу:

www.domainname.com / default.aspx? ReturnUrl =% 2f, поэтому при входе в систему они возвращаются на http://www.domainname.com/,, который снова является страницей входа в систему, поэтому для доступа к сайту необходимо дважды войти в систему.

Кто-нибудь знает, как это исправить?Я думаю, что решение этой проблемы было бы разрешить каждому доступ к домашней странице - http://www.domainname.com/, а также http://www.domainname.com/default.aspx, но я не уверен, как этого добиться.

Iхочу, чтобы всем ролям пользователей было отказано в доступе к каждой странице, кроме домашней страницы, перед тем как они войдут в систему, у меня также есть раздел admin / cms, к которому могут обращаться только роли администратора, но каждый может получить доступ к странице входа в cms.

Iв настоящее время есть это в моем web.config

        <authentication mode="Forms">
        <forms protection="All" loginUrl="default.aspx" defaultUrl="~/home/" />
    </authentication>
    <authorization>
        <allow roles="Admin, User"/>
        <deny users="?" />
    </authorization>

    <location path="default.aspx">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

<location path="cms/default.aspx">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

<location path="cms">
    <system.web>
        <authorization>
            <allow roles="Admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

Ответы [ 3 ]

3 голосов
/ 06 октября 2011

Ну, я, кажется, сделал это немного по счастливой случайности.

Я только что изменился

<authentication mode="Forms">
    <forms protection="All" loginUrl="default.aspx" defaultUrl="~/home/" />
</authentication>

На

<authentication mode="Forms">
    <forms protection="All" loginUrl="/" defaultUrl="~/home/" />
</authentication>
0 голосов
/ 06 октября 2011

Да, мы можем использовать вышеуказанное решение. Одна проблема здесь, когда мы используем реализацию SEO. Чтобы удовлетворить ваши требования, вы можете использовать URLRewrite.

http://weblogs.asp.net/scottgu/archive/2010/04/20/tip-trick-fix-common-seo-problems-using-the-url-rewrite-extension.aspx

0 голосов
/ 06 октября 2011

Вы должны отправить их на страницу, которую вы хотите использовать по умолчанию. Что вам нужно сделать, это создать страницу входа на отдельной странице (login.aspx), например, а затем сделать страницу default.aspx домашней страницей. Затем, когда они перейдут в default.aspx, они будут перенаправлены в login.aspx? ReturnURL =% 2f.

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