ASP.net формира настройка за удостоверяване returnURL на връзка, когато потребителят вече е влязъл

Имам уебсайт asp.net, който използва удостоверяване чрез формуляри. Когато предоставя връзка към защитена страница на уебсайта в документ на Microsoft Word, той задава URL за връщане дори когато вече съм влязъл в уебсайта. Това означава, че съм пренасочен към страницата за вход, която след това ме насочва към страницата за неоторизиран достъп, въпреки че съм упълномощен да видя страницата.

Моят web.config код:

<authentication mode="Forms">
  <forms protection="All" requireSSL="true" name="BSOAuthCookie" loginUrl="~/Login/Login.aspx" defaultUrl="~/secure/securepage.aspx" cookieless="UseCookies" timeout="30" />
</authentication>

Това е кодът в зареждането на страницата на страницата ми за вход, за да ме пренасочи към страницата за неоторизиран достъп:

        If Request.IsAuthenticated AndAlso Not String.IsNullOrEmpty(Request.QueryString("ReturnUrl")) Then
            ' This is an unauthorized, authenticated request...
            Response.Redirect("~/UnauthorisedAccess.aspx")
        End If

Ако поставя същата връзка в имейл и щракна, изглежда, че работи добре.


person Azeem    schedule 06.06.2013    source източник


Отговори (1)


С помощта на requireSSL="true" принуждавате удостоверените бисквитки да могат да се четат само на защитена страница, всяка незащитена страница не преминава удостоверяването.

Добавете това твърдение към кода си и преди IsAuthenticated, за да проверите отново дали се обаждате от защитена страница.

Debug.Assert(HttpContext.Current.Request.IsSecureConnection
                                                  , "Must be on secure page");

Също така задайте domain="sitename.com", без www, за да принудите удостоверената бисквитка да бъде зададена както от домейна, така и от поддомейна.

<authentication mode="Forms">
  <forms domain="sitename.com 
        protection="All" requireSSL="true" name="BSOAuthCookie" 
        loginUrl="~/Login/Login.aspx" defaultUrl="~/secure/securepage.aspx" 
            cookieless="UseCookies" timeout="30" />
</authentication>
person Aristos    schedule 06.06.2013
comment
Връзката, която кликвам, е към защитена страница. Всички заявки се изпращат през https веднага щом потребител влезе. Също така в моя метод за зареждане на страницата на страницата за вход имам този блок от код, който променя http на https. Моля, вижте моя метод за зареждане на страницата по-горе. - person Azeem; 06.06.2013
comment
След това опитайте domain - и задайте твърдението да го провери двойно. - person Aristos; 06.06.2013
comment
Благодаря Аристос! Опитах това, което предложихте, но все още прави същото. - person Azeem; 06.06.2013
comment
@Azeem след това още отстраняване на грешки в браузъра, за да видите какво и къде е тази бисквитка. - person Aristos; 06.06.2013