URL переписать на две страницы входа
У меня возникла проблема при попытке переписать URL-адрес моей страницы входа. Это как. Я получил две страницы входа, FirstLoginPage.aspx и SecondLoginPage.aspx, я хочу переписать страницу в /FirstAuthen и / SecondAuthen.
Когда пользователь хочет перейти на вторую страницу входа, он должен сначала пройти первый вход. У меня есть следующий код в моем web.config с документом по умолчанию, установленным в ~/FirstAuthen
<defaultDocument>
<files>
<add value="~/FirstAuthen"/>
</files>
</defaultDocument>
<authentication mode="Forms">
<forms defaultUrl="~/Home" loginUrl="~/SecondLoginPage.aspx" slidingExpiration="true" timeout="1440"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<location path="FirstLoginPage.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<rewrite>
<rules>
<rule name="remove firstlogin" patternSyntax="Wildcard">
<match url="FirstAuthen" />
<action type="Rewrite" url="FirstLoginPage.aspx"/>
</rule>
<rule name="remove secondlogin" patternSyntax="Wildcard">
<match url="SecondAuthen" />
<action type="Rewrite" url="SecondLoginPage.aspx"/>
</rule>
</rules>
</rewrite>
и следующий код в моем Global.asax
Sub RegisterRoutes(ByVal routes As RouteCollection)
'FirstLoginPage
routes.MapPageRoute("First", "FirstAuthen/", "~/FirstLoginPage.aspx")
'SecondLoginPage
routes.MapPageRoute("Second", "SecondAuthen/", "~/SecondLoginPage.aspx")
'other routes
End Sub
Все остальные перезаписи работают нормально, и firstloginpage будет загружен при запуске проекта. За исключением firstloginpage.aspx, он не переписывается в ~/FirstAuthen, как я хочу. Я пробовал много других способов, но не повезло. Я делаю что-то не так с приведенным выше кодом? Пожалуйста, порекомендуйте. Спасибо
1 ответ
В вашем правиле соответствия перезаписи вам нужно установить /
перед URL, поэтому он должен выглядеть так:
<match url="/FirstAuthen" />
и в вашем правиле действий вы можете перенаправить свою страницу на другую, как показано ниже:
<rule name="go to second auth" stopProcessing="true"> <match url="/FirstAuthen"/> <action type="Redirect" url="SecondAuthen" redirectType="Permanent"/> </rule>
и сделать то же самое для другого