2011-11-02 11 views
0

我在MVC3部署一個Web應用程序,這是因爲所需的身份驗證不能與佈局有關的樣式,所以我可以爲此做什麼?我的web.config中需要另一個配置嗎?不能獲取樣式和一些腳本沒有登錄

UPDATE

所以我修改我的web.config,但仍然沒有工作,這是我的web.config

<?xml version="1.0"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=152368 
    --> 

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

    <appSettings> 
    <add key="webpages:Version" value="1.0.0.0"/> 
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    </appSettings> 

    <location path="Content"> 
     <system.web> 
      <authorization> 
       <allow users="*" /> 
      </authorization> 
     </system.web> 
    </location> 
    <location path="Scripts"> 
     <system.web> 
      <authorization> 
       <allow users="*" /> 
      </authorization> 
     </system.web> 
    </location> 
    <location path="js"> 
     <system.web> 
      <authorization> 
       <allow users="*" /> 
      </authorization> 
     </system.web> 
    </location> 
    <location path="Images"> 
     <system.web> 
      <authorization> 
       <allow users="*" /> 
      </authorization> 
     </system.web> 
    </location> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </assemblies> 
    </compilation> 

    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="10" /> 

    </authentication> 



    <membership> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
      enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
      maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
      applicationName="/" /> 
     </providers> 
    </membership> 

    <profile> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     </providers> 
    </profile> 

    <roleManager enabled="false"> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
     </providers> 
    </roleManager> 

    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages"/> 
     </namespaces> 
    </pages> 
    </system.web> 

    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

更新II

這是我的控制器的方法

public ActionResult LogOn() 
    { 
     return View(); 
    } 

    // 
    // POST: /Account/LogOn 

    [HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      clsEncriptacion _clsEncriptacion = new clsEncriptacion(); 
      string encripPassword = _clsEncriptacion.Encriptar(model.Password); 

      Usuario user = (from U in _db.Usuario 
          where ((U.Nombre == model.UserName) && (U.Password == encripPassword)) 
          select U).FirstOrDefault(); 



      if (user != null) 
      { 
       Session["IdPerfil"] = user.Perfil_FK.Nivel.ToString(); 
       Session["IDUsuario"] = user.ID; 
       FormsAuthentication.RedirectFromLoginPage(user.Nombre, true); 
       return RedirectToAction("Index", "Home"); 
      } 
      else 
      { 
       Session["IdPerfil"] = string.Empty; 
       ModelState.AddModelError("", "Login o password incorrecto. Por favor, intente nuevamente."); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 

我需要另一個配置在我的IIS?

+0

你怎麼做您的驗證?僅檢查admin文件夾的代碼受到限制。你怎麼做呢? – ysrb

+0

我在控制器中創建了我自己的方法 – Jorge

+0

您可以顯示該方法嗎? – ysrb

回答

0

嘗試把你的web配置如下:

<location path="admin/asset"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 

假設admin/asset是你把你的CSS和

+0

如果我在默認情況下使用文件夾內容,它應該只在路徑中放入''Content「'? – Jorge

+0

是的。在/web.config插入 <位置路徑= 「內容」> <授權> <允許用戶= 「*」/> ysrb

+0

我更新了我的問題,因爲我加了該配置但它不起作用 – Jorge

0

你需要讓你的資源匿名訪問圖像,否則他們不會服務完畢。

在web.config中使用類似:

<configuration> 
    <location path="mystyles.css"> 
     <system.web> 
      <authorization> 
       <allow users="*"/> 
      </authorization> 
     </system.web> 
    </location> 
</configuration>