2015-08-27 5 views
0

У меня есть каталог на сервере, который содержит определенные файлы. мне нужно защитить эти файлы, чтобы, если файл вызывается из URL-адреса, он не будет скачиваться, если с запросом не будет получено имя пользователя и пароль.Перенаправление аутентификации форм. Страница

в настоящее время, я развернула каталог как приложение в IIS и добавил следующий веб-конфигурации:

<?xml version="1.0"?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <authentication mode="Forms"> 
    <forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH" protection="All" defaultUrl="/" path="?"> 
    </forms> 
    </authentication> 
    <authorization> 
    <deny users="?" /> 
    </authorization> 
    </system.web> 


    <system.webServer> 

     <directoryBrowse enabled="true" /> 

    <httpRedirect enabled="true" destination="/logon.aspx" /> 
</system.webServer> 


</configuration> 

и следующую страницу входа в систему:

<%@ Page Language="VB" %> 
<%@ Import Namespace="System.Web.Security" %> 

<script runat="server"> 
    Sub Logon_Click(ByVal sender As Object, ByVal e As EventArgs) 
    If ((UserEmail.Text = "[email protected]") And _ 
      (UserPass.Text = "37Yj*99Ps")) Then 
     FormsAuthentication.RedirectFromLoginPage _ 
      (UserEmail.Text, Persist.Checked) 
    Else 
     Msg.Text = "Invalid credentials. Please try again." 
    End If 
    End Sub 
</script> 

<html> 
<head id="Head1" runat="server"> 
    <title>Forms Authentication - Login</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <h3> 
     Logon Page</h3> 
    <table> 
     <tr> 
     <td> 
      E-mail address:</td> 
     <td> 
      <asp:TextBox ID="UserEmail" runat="server" /></td> 
     <td> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
      ControlToValidate="UserEmail" 
      Display="Dynamic" 
      ErrorMessage="Cannot be empty." 
      runat="server" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      Password:</td> 
     <td> 
      <asp:TextBox ID="UserPass" TextMode="Password" 
      runat="server" /> 
     </td> 
     <td> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator2" 
      ControlToValidate="UserPass" 
      ErrorMessage="Cannot be empty." 
      runat="server" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      Remember me?</td> 
     <td> 
      <asp:CheckBox ID="Persist" runat="server" /></td> 
     </tr> 
    </table> 
    <asp:Button ID="Submit1" OnClick="Logon_Click" Text="Log On" 
     runat="server" /> 
    <p> 
     <asp:Label ID="Msg" ForeColor="red" runat="server" /> 
    </p> 
    </form> 
</body> 
</html> 

я еще не пытаться пройти имя пользователя и пароль в запросе от приложения Android (что я хочу сделать в конце концов), но я назвал ссылку URL из Интернета, и страница входа в систему показала успех, если URL-адрес был каталогом, но когда URL-адрес указывал на файл, например : MYURL/test/test.txt t когда файл появляется, и страница входа в систему не отображается. пожалуйста, любая помощь приветствуется. Я новичок в этом.

+0

NO ONE ANSWER? !! –

ответ

0

Я изменил конфигурацию сети следующим образом. change system.webServer

<system.webServer> 
    <modules> 
     <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" /> 
     <remove name="UrlAuthorization" /> 
     <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> 
     <remove name="DefaultAuthentication" /> 
     <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" /> 
    </modules> 
    </system.webServer> 
Смежные вопросы