Tag: asp.net mvc

获取ASP.NET MVC5身份系统中的所有角色名称

MVC5使用新的身份系统。 我怎样才能获得所有角色名称? 我尝试通过IdentityStore访问它但没有成功。

使用ContinueWith或Async-Await时的不同行为

当我在HttpClient调用中使用async-await方法(如下例所示)时,此代码会导致死锁 。 用t.ContinueWith替换async-await方法,它可以正常工作。 为什么? public class MyFilter: ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { var user = _authService.GetUserAsync(username).Result; } } public class AuthService: IAuthService { public async Task GetUserAsync (string username) { var jsonUsr = await _httpClientWrp.GetStringAsync(url).ConfigureAwait(false); return await JsonConvert.DeserializeObjectAsync(jsonUsr); } } 这有效: public class HttpClientWrapper : IHttpClient { public Task GetStringAsync(string url) { […]

做强类型ASP.NET MVC会话的更好方法

我正在开发一个ASP.NET MVC项目,并希望使用强类型的会话对象。 我已实现以下Controller派生类来公开此对象: public class StrongController : Controller where _T : new() { public _T SessionObject { get { if (Session[typeof(_T).FullName] == null) { _T newsession = new _T(); Session[typeof(_T).FullName] = newsession; return newsession; } else return (_T)Session[typeof(_T).FullName]; } } } 这允许我为每个控制器定义一个会话对象,这符合控制器隔离的概念。 是否有更好/更“正确”的方式,也许是微软正式支持的方式?

安装AspNet5RC1后,无法再在任何以前/新的MVC项目中打开cshtml文件

安装AspNet5.ENU.RC1后,任何以前或新的MVC项目都会抛出一个 操作无法完成。 指针无效 打开剃刀页面时出错( .cshtml )。 其他文件(如类库和配置文件)按预期打开。 我重新安装VS之前的任何建议?

使用ASP.NET MVC的log4net:没有任何反应

我正在尝试将log4net与ASP.NET MVC一起使用,但我无法发生任何事情。 我已经在我的web项目根目录中创建了一个配置: 在我被问到之前:是的,应用程序有权写入目录。 我已对此进行了测试,该应用程序已获得此目录的权限。 这是我尝试使用log4net的地方: public class HomeController : Controller { readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public ActionResult Index() { log.Error(“In Index “); return View(); } } 当我运行应用程序并转到此控制器时,log4net什么都不做; 它不会在该目录或任何内容中创建文件。 我已经为log4net启用了内部调试,并且在控制台中没有输出错误。 以下是我在log4net上看到的全部内容: log4net:log4net assembly [log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 1b44e1d426115821]。 从[C:\ Users \ twaldron.BULLFROGSPAS \ AppData \ Local \ Temp \ Temporary ASP.NET Files […]

ASP.NET MVC中基于文档的安全性

我已经了解ASP.NET MVC中的用户和基于角色的安全性。 但现在我需要一些更精细的东西。 假设我有一份文档列表,其中一些是用户授权的,有些则不是。 每个文档在数据库的文档表中都有相应的记录。 如果用户具有安全访问权限,则可以下载文档以供查看。 如果您有角色,也可以添加文档。 每个文档都有一个URL,每个文档列表都有一个URL。 我想安全修整列表,以便用户只能看到他授权的那些文档。 但是我还需要对这些列表和文档的URL请求进行身份validation,因为没有什么可以阻止用户为他们不再有权访问的文档添加书签,或者只是在浏览器中键入URL。 内置的基于角色的安全模型是否适用于此,或者我是否需要创建单独的基于表的安全性? 我可以将安全性放在我的存储库中,以便返回的记录已被修剪,或者它应该是控制器的一部分吗? 我是否需要安全属性来validation控制器请求,或者我应该将它作为前几行代码放在控制器方法中?

如何在c#MVC身份validation中获取google plus个人资料图片

我正在开发一个使用Google登录作为默认提供程序的C#ASP.NET MVC 5应用程序。 登录function正常,我可以获得用户的电子邮件和名称。 我需要的一件事是获取用户的个人资料图片。 我怎样才能做到这一点? 到目前为止,我使用默认的MVC auth“UseGoogleAuthentication”。 Microsoft.Owin.Security.Google.GoogleAuthenticationOptions a = new Microsoft.Owin.Security.Google.GoogleAuthenticationOptions(); var googleOption = new GoogleAuthenticationOptions() { Provider = new GoogleAuthenticationProvider() { OnAuthenticated = (context) => { var rawUserObjectFromFacebookAsJson = context.Identity; context.Identity.AddClaim(new Claim(“urn:google:name”, context.Identity.FindFirstValue(ClaimTypes.Name))); context.Identity.AddClaim(new Claim(“urn:google:email”, context.Identity.FindFirstValue(ClaimTypes.Email))); return Task.FromResult(0); } } }; app.UseGoogleAuthentication(googleOption); 这就是我可以获取电子邮件地址的方式。 但是个人资料图片怎么样? 我是否需要使用其他forms的身份validation?

如何在aspnet身份中进行会话管理?

我使用Asp.net身份 登录,注册,忘记密码等,源代码取自以下链接: http://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-web-app-with-email-confirmation-and-password-reset http://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity 。 现在我有一个UserMaster表,在注册期间我要求以下字段: FullName,EmailId,Password,ContactNumber,Gender 。 我的UserMaster包含以下字段: Id,FullName,EmailId,ContactNumber,Gender 现在,当用户提交注册表格时,此FullName,EmailId,ContactNumber,Gender将与电子邮件一起保存在UserMaster中 ,密码将保存在AspnetUser中 。 我的注册方法与上面2个链接中提供的方法相同。 在这里您可能会注意到我的UserMaster和AspnetUser之间没有任何关系,因此在登录时用户将输入他的电子邮件ID登录我将使用此方法await SignInManager.PasswordSignInAsyncvalidation用户,如果此方法返回成功,那么我将要做的是使用此电子邮件ID并在我的UserMaster中查看此电子邮件,如果找到匹配,我将从UserMaster获取UserId并将其存储在会话中并使用我的登录方法使用我的应用程序,如下所示: public async Task Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } // This doesn’t count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = […]

Asp.Net MVC:如何获取当前控制器/视图的虚拟URL?

是否可以获取与控制器操作或视图关联的路由/虚拟URL? 我看到Preview 4添加了LinkBuilder.BuildUrlFromExpression助手,但是如果你想在master上使用它,它不是很有用,因为控制器类型可能不同。 任何想法都表示赞赏。

从ASP.NET 4.5 MVC Web应用程序迁移到.NET Core

我刚刚接受了一些我不熟悉的技术任务 – 我们可爱的Windows ASP.NET MVC Web应用程序应转换为在linux环境中使用。 我在健康方面工作,我们拥有绝对不会丢失的用户数据或头部会滚动(我们或他们的)。 我通常不是C#/ ASP.NET人 – 尽管我可以适应这项任务。 我一直在阅读官方文档@ http://docs.asp.net/en/latest/getting-started/installing-on-linux.html并且可以看到这个任务实际上意味着’瞄准.NET CORE (或单声道)框架’。 我已经google了,似乎没有事实上/简单的迁移方式 – 只需学习新的模块化设置,将配置文件打入project.json即可离开! 在我尝试手动执行此操作之前 – 您有什么信息可以告诉我吗? 一些系统化的流程要遵循? 也许我之前应该读过一些“陷阱”? 该项目使用NHibernate和Autofac进行DI – 似乎非常标准。 我只是想知道在Linux服务器上运行它需要多少读取/试验 – 最终这才是最重要的。