2016-10-09 1 views
2

Je veux créer une liste déroulante avec AspNetRoles. j'utiliser ce code:Les erreurs suivantes se sont produites lors de la tentative de chargement de l'application. - La valeur OwinStartupAttribute.FriendlyName

Idnetity Conf:

public class ApplicationRoleManager : RoleManager<IdentityRole> 
{ 
    public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore) 
     : base(roleStore) 
    { 
    } 

    public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context) 
    { 
     return new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>())); 
    } 
} 

.

StartUP:

using System; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.Owin; 
using Microsoft.Owin; 
using Microsoft.Owin.Security.Cookies; 
using Microsoft.Owin.Security.Google; 
using Owin; 
using Identity_Work.Models; 

namespace Identity_Work 
{ 
    public partial class Startup 
    { 
     public void ConfigureAuth(IAppBuilder app) 
     { 
      app.CreatePerOwinContext(ApplicationDbContext.Create); 
      app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); 
      app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create); 
      app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
       LoginPath = new PathString("/Account/Login"), 
       Provider = new CookieAuthenticationProvider 
       { 
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
         validateInterval: TimeSpan.FromMinutes(30), 
         regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
       } 
      }); 
      app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);   app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); 
     } 
    } 
} 

. Web Config:

<appSettings> 
<add key="webpages:Version" value="3.0.0.0" /> 
<add key="webpages:Enabled" value="false" /> 
<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
<add key="owin:AppStartup" value="Identity_Work.IdentityConfig" /> 

Controller:

[AllowAnonymous] 
public ActionResult Register() 
{ 
    ViewBag.name = new SelectList(db.Roles, "RoleID", "RoleName"); 

    return View(); 
} 

Vue:

<div class="form-group"> 
    <label>نوع عضویت</label> 
    <div class="col-md-10"> 
     @Html.DropDownList("name", "--Select Name--") 
    </div> 
</div> 

mais quand je lance le projet me montrer cette erreur:

Les erreurs suivantes se sont produites lors du chargement de l'application. - La valeur OwinStartupAttribute.FriendlyName '' ne correspond pas à la valeur donnée 'Identity_Work.IdentityConfig' dans Assembly 'Identity_Work, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null'. - Le type ou la méthode 'Identity_Work.IdentityConfig' n'a pas été trouvé. Essayez de spécifier l'assemblage. Pour désactiver la découverte de démarrage OWIN, ajoutez le fichier appSetting owin: AutomaticAppStartup avec la valeur "false" dans votre fichier web.config. Pour spécifier l'assembly, la classe ou la méthode de démarrage OWIN, ajoutez le fichier appSetting owin: AppStartup avec la classe de démarrage complète ou le nom de la méthode de configuration dans votre fichier web.config.

. quel est le problème ?

Modifier

enter image description here

+0

Voir fichier complet de démarrage. et owin connexes appsettings de webconfig – Nkosi

+0

Mettre à jour la question. – Kianoush

Répondre

4

Comme le message d'erreur explique

La valeur OwinStartupAttribute.FriendlyName '' ne correspond pas à la valeur donnée 'Identity_Work.IdentityConfig'

F suivre les instructions du message d'erreur

Le type ou la méthode 'Identity_Work.IdentityConfig' n'a pas été trouvé. Essayez de spécifier l'assemblage. Pour désactiver la découverte de démarrage OWIN, ajoutez le fichier appSetting owin: AutomaticAppStartup avec la valeur "false" dans votre web.config. Pour spécifier l'assembly OWIN Assembly, Class ou Method, ajoutez le fichier appSetting owin: AppStartup avec la classe de démarrage entièrement qualifiée ou le nom de la méthode de configuration dans votre fichier web.config.

Vous devez d'abord vérifier Startup.cs pour voir si elle a la bonne référence à la classe

[assembly: OwinStartup(typeof(Identity_Work.Startup))] 

Si elle le fait, alors vous devez supprimer owin:AppStartup dans web.config si elle existe et ne référence pas la classe correcte

<add key="owin:AutomaticAppStartup" value="true" /> 

Sinon, vous pouvez mettre à jour le fichier web.config pour laisser owin utiliser

<add key="owin:AutomaticAppStartup" value="false" /> 
<add key="owin:AppStartup" value="Identity_Work.Startup" /> 
+0

qu'est-ce que je devrais faire? – Kianoush

+0

il me montre cette erreur 'HTTP Error 401.0 - Unauthorized' – Kianoush

+0

Pour quelle url? mettre l'attribut [AllowAnonymous] 'sur l'action mappée. – Nkosi

0

Je viens de spécifier l'itinéraire complet et ça marche pour moi!

Project name: Users.Web 
Folders: App_Start 
Class name: IdentityConfig 

<add key="owin:AppStartup" value="Users.Web.App_Start.IdentityConfig" /> 

enter image description here