public async static Task <CloudBlockBlob> SaveAsync(HttpRequest request, CloudBlobContainer userContainer) { var principal = await StaticWebAppsAuth.GetClientPrincipalAsync(request); var blob = GetBlob(principal, userContainer); var requestBody = await new StreamReader(request.Body).ReadToEndAsync(); var user = JsonConvert.DeserializeObject <User>(requestBody); user.ClientPrincipal = principal; await SaveAsync(blob, user); return(blob); }
public void TestAnonymousUserIsNotAuthorized() { var clientPrincipal = new ClientPrincipal { IdentityProvider = "google", UserId = "foo", UserDetails = "foo bar", UserRoles = new List <string> { "anonymous", } }; var isAuthorized = StaticWebAppsAuth.IsAuthorized(clientPrincipal, "foo"); Assert.False(isAuthorized); }
public void TestNotAuthorizedToAccessResourceNotOwnedByTheAuthenticatedUser() { var clientPrincipal = new ClientPrincipal { IdentityProvider = "google", UserId = "bar", UserDetails = "foo bar", UserRoles = new List <string> { "anonymous", "user", } }; var isAuthorized = StaticWebAppsAuth.IsAuthorized(clientPrincipal, "foo"); Assert.False(isAuthorized); }
public async static Task <CloudBlockBlob> GetBlobAsync(HttpRequest request, CloudBlobContainer userContainer) { var principal = await StaticWebAppsAuth.GetClientPrincipalAsync(request); var blob = GetBlob(principal, userContainer); var blobExists = await blob.ExistsAsync(); if (!blobExists) { var user = new User { ClientPrincipal = principal }; await SaveAsync(blob, user); } return(blob); }