Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Välkommen! Det här är förmodligen inte den sida du förväntade dig. När vi arbetar med en korrigering bör den här länken ta dig till rätt artikel:
Snabbstart: Lägga till inloggning med Microsoft i en ASP.NET webbapp
Vi ber om ursäkt för besväret och uppskattar ditt tålamod medan vi arbetar för att få detta löst.
I den här snabbstarten laddar du ned och kör ett kodexempel som visar ett ASP.NET webbprogram som kan logga in användare med Microsoft Entra-konton.
Steg 1: Konfigurera ditt program i Azure-portalen
För att kodexemplet i den här snabbstarten ska fungera anger du https://localhost:44368/ för omdirigerings-URI.
Programmet har konfigurerats med det här attributet.
Steg 2: Ladda ned projektet
Kör projektet med hjälp av Visual Studio 2019.
Tips
För att undvika fel som orsakas av sökvägslängdsbegränsningar i Windows rekommenderar vi att du extraherar arkivet eller klonar lagringsplatsen till en katalog nära roten på enheten.
Steg 3: Din app är konfigurerad och redo att köras
Vi har konfigurerat projektet med värden för appens egenskaper.
Extrahera .zip-filen till en lokal mapp som är nära rotmappen. Du kan till exempel extrahera till C:\Azure-Samples.
Vi rekommenderar att du extraherar arkivet till en katalog nära roten på enheten för att undvika fel som orsakas av sökvägslängdsbegränsningar i Windows.
Öppna lösningen i Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
Beroende på versionen av Visual Studio kan du behöva högerklicka på projektet >AppModelv2-WebApp-OpenIDConnect-DotNet och sedan välja Återställ NuGet-paket.
Öppna Package Manager-konsolen genom att välja Visa>Andra fönster>Package Manager Console. Kör sedan
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
.
Notera
Enter_the_Supported_Account_Info_Here
Mer information
Det här avsnittet ger en översikt över den kod som krävs för att logga in användare. Den här översikten kan vara användbar för att förstå hur koden fungerar, vad huvudargumenten är och hur du lägger till inloggning i ett befintligt ASP.NET program.
Så här fungerar exemplet
NuGet-paket med OWIN-mellanprogram
Du kan konfigurera autentiseringspipelinen med cookiebaserad autentisering med hjälp av OpenID Connect i ASP.NET med OWIN-mellanprogramspaket. Du kan installera dessa paket genom att köra följande kommandon i Package Manager Console i Visual Studio:
Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb
OWIN-startklass
OWIN-mellanprogrammet använder en startklass som körs när värdprocessen startar. I den här snabbstarten finns startup.cs-filen i rotmappen. Följande kod visar de parametrar som används i den här snabbstarten:
public void Configuration(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// Sets the client ID, authority, and redirect URI as obtained from Web.config
ClientId = clientId,
Authority = authority,
RedirectUri = redirectUri,
// PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
PostLogoutRedirectUri = redirectUri,
Scope = OpenIdConnectScope.OpenIdProfile,
// ResponseType is set to request the code id_token, which contains basic information about the signed-in user
ResponseType = OpenIdConnectResponseType.CodeIdToken,
// ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
// To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
// To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = false // Simplification (see note below)
},
// OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = OnAuthenticationFailed
}
}
);
}
Var Beskrivning ClientId
Program-ID:t från programmet som registrerats i Azure-portalen. Authority
StS-slutpunkten (Security Token Service) som användaren kan autentisera. Det är vanligtvis https://login.microsoftonline.com/{tenant}/v2.0
för det offentliga molnet. I den URL {tenant} är namnet på din klient, ditt klient-ID ellercommon
för en referens till den gemensamma slutpunkten. (Den gemensamma slutpunkten används för program med flera klienter.)RedirectUri
URL:en där användare skickas efter autentisering mot Microsofts identitetsplattform. PostLogoutRedirectUri
URL dit användare skickas efter att ha loggat ut. Scope
Listan över omfång som begärs, separerade med mellanslag. ResponseType
Begäran om att svaret från autentiseringen innehåller en auktoriseringskod och en ID-token. TokenValidationParameters
En lista med parametrar för tokenverifiering. I det här fallet är ValidateIssuer
inställd påfalse
för att indikera att den kan acceptera inloggningar från alla personliga kontotyper, arbets- eller skolkontotyper.Notifications
En lista över delegater som kan köras för OpenIdConnect
-meddelanden.
Notera
Att ange ValidateIssuer = false
är en förenkling för den här snabbstarten. Verifiera utfärdaren i verkliga applikationer. Se exemplen för att förstå hur du gör det.
Autentiseringsutmaning
Du kan tvinga en användare att logga in genom att begära en autentiseringsutmaning i kontrollanten:
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties{ RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
Tips
Det är valfritt att begära en autentiseringsutmaning med den här metoden. Du använder den normalt när du vill att en vy ska vara tillgänglig för både autentiserade och oautentiserade användare. Du kan också skydda kontrollanter med hjälp av den metod som beskrivs i nästa avsnitt.
Attribut för att skydda en kontroller eller kontrollerns åtgärder
Du kan skydda en kontrollant eller kontrollantåtgärder med hjälp av attributet [Authorize]
. Det här attributet begränsar åtkomsten till kontrollanten eller åtgärder genom att endast autentiserade användare får åtkomst till åtgärderna i kontrollanten. En autentiseringsutmaning sker sedan automatiskt när en oautentiserad användare försöker komma åt någon av de åtgärder eller kontrollanter som är dekorerade med attributet [Authorize]
.
Hjälp och stöd
Om du behöver hjälp, vill rapportera ett problem eller vill veta mer om dina supportalternativ kan du läsa Hjälp och support för utvecklare.
Nästa steg
Om du vill ha en fullständig steg-för-steg-guide om hur du skapar program och nya funktioner, inklusive en fullständig förklaring av den här snabbstarten, kan du prova ASP.NET självstudien.