Last week, I had a requirement to authenticate users. I did search Google but all the solutions support Owin and related libs, MVC etc.There is no solution for Web form application with .NET 4.0.
For this, you have to follow these steps -
Create application using Microsoft account at this URL.
- Mention Redirect URL where you want to hit after authentication.
- Copy AppId that will help us later.
- In Login.aspx, create a button, and onclick of this button, write the following code.
- <input type="button" ID="BtnSignInMicrosoft" Class="bofficesignin" runat="server" value="Sign in with Office 365" onclick="RedirectToOffice(); return false;" /> and javascript code function RedirectToOffice() { var OfficeRedirectUrl = "
- <%=ConfigurationManager.AppSettings("YourRediectURL mention on application creation")%>"; var Office365ClientId = "
- <%=ConfigurationManager.AppSettings("Office365ClientId")%>"; var OfficeUrl = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=id_token+token&client_id="+ Office365ClientId +"&redirect_uri=" + OfficeRedirectUrl + "&scope=openid+https%3A%2F%2Foutlook.office.com%2Fmail.read&nonce=13c9217a-d565-fb9e-d66d-d5ad18fa6f0b&response_mode=form_post"; window.open(OfficeUrl,"_self"); }
- If Request.Form.Item("id_token") Is Nothing = False Then
- Dim objWebClient As New System.Net.WebClient
- Dim HeaderData As New WebHeaderCollection
- Dim jSerializer As New JavaScriptSerializer
- Dim ResponseString As String = String.Empty
- Dim ResponseData As Dictionary(Of String, String)
- Dim Email As String = String.Empty
- Dim TokenID As String = Request.Form.Item("id_token")
- Dim AccessToken As String = Request.Form.Item("access_token")
- TokenID = TokenID.Substring(0, TokenID.IndexOf("."))
- HeaderData("Authorization") = "Bearer " + AccessToken
- ' Dim objOutlookSetting As OutLookSetting = Serializar.Deserialize(Of OutLookSetting)(BLL.SettingManager.GetValueByKey("EAAdminOutlookSetting"))
- HeaderData("client-request-id") = ConfigurationManager.AppSettings("Office365ClientId")
- HeaderData("return-client-request-id") = "true"
- objWebClient.Headers = HeaderData
- ResponseString = objWebClient.DownloadString("https://outlook.office.com/api/v2.0/Me")
- ResponseData = jSerializer.Deserialize(Of Dictionary(Of String, String))(ResponseString)
- Email = ResponseData("EmailAddress")

Dev aspnetPosted May 1, 2019, 7:36 AM
I am trying this...but i do not get the prompt for outlook credentials... on clicking signin button in my login page it directly navigates to the redirecturl... how to get this working??? please help