Tag: model view controller

使用自定义成员资格和角色提供程序在MVC中实现IPrincipal和IIdentity

我坚持使用自定义iprincpal和iidentity对象的实现。 我现在花了一天时间来搜索如何实现这些权利并用更多信息扩展它。 我想用自定义变量(如全名或其他)扩展Information @Context.User.Identity.Name 。 编辑 :现在我得到以下代码,但如果我尝试阅读@((CustomPrincipal)Context.User.Identity).Nachname我收到一个错误, System.Web.Security.FormsIdentity无法转换为CustomPrincipal 。 有任何想法吗? public class CustomPrincipal : GenericPrincipal { public CustomPrincipal(IIdentity identity, String[] roles) : base(identity, roles){ } public String Vorname { get; set; } public String Nachname { get; set; } } AccountModel: public class FormsAuthenticationService : IFormsAuthenticationService { public void SignIn(string userName, bool createPersistentCookie) { if […]

对象的MongoDB关系

请原谅我的英语,我仍然想要掌握它。 我已经开始学习MongoDB(来自C#背景),我喜欢MongoDB的想法。 我在互联网上有一些例子。 以流行的博客文章/评论为例。 post没有或与之相关的许多评论。 我创建Post对象,向Post中的IList添加一些Comment对象。 没关系。 我是否只将其添加到MonoDB中的“post”集合中,还是应该有两个集合 – 一个是blog.posts和blog.posts.comments? 我有一个公平复杂的对象模型,最简单的方法是将其视为银行系统 – 我们的是采矿业。 我试图用方括号突出显示表格。 [用户]有一个或多个[帐户]有一个或多个[交易] ,其中只有一个[类型] 。 [Transactions]可以为交易分配一个或多个[Tag] 。 [用户]创建他们自己的[标签]对该用户帐户是唯一的,我们有时需要提供这些标签的报告(例如,5月,标签钻孔费用为123456.78美元)。 对于索引,我会认为分离它们会很好但是我担心从旧的RBDMS时代这个想法是不好的做法。 在某种程度上,它就像博客的例子。 我不确定我是否应该拥有1个[帐户]集合并在那里保留所有信息,或者有一个中间步骤将其拆分为单独的集合。 另一个相关的问题是,当你来回持续时,你通常会收回与该记录相关的所有内容 – 即使不是必需的,还是你限制?

在ASP.NET中使用Live Connect API检索用户的电子邮件地址

所以我是ASP.NET MVC和Windows Live Connect API的新手。 基本上我正在尝试将Live登录整合到我的网站中。 当用户登录时,Live会请求他们为我的应用程序提供某些信息的权限,将用户发送到我的应用程序设置中指定的重定向uri,并附加查询字符串。 在这里,如果用户第一次登录该站点,我希望他们的基本信息存储在我的服务器上(名字,姓氏,电子邮件)。 我已经能够获得他们的名字和姓氏,但我很难找到如何检索他们的主要电子邮件地址。 我会解释到目前为止我做了什么。 我找不到将Live connect集成到MVC应用程序的最佳方法,所以我做了最好的猜测。 我在我的重定向uri中指定了一个控制器动作,它使用查询字符串“code”来构造HTTP Post。 HttpRequest req = System.Web.HttpContext.Current.Request; string myAuthCode = req.QueryString[“code”]; string myAppId = ConfigurationManager.AppSettings.Get(“wll_appid”); string mySecret = ConfigurationManager.AppSettings.Get(“wll_secret”); string postData = “client_id=” + myAppId + “&redirect_uri=http%3A%2F%2Fmscontestplatformtest.com%2FContestPlatform%2FUser%2FSignIn&client_secret=” + mySecret + “&code=” + myAuthCode + “&grant_type=authorization_code”; byte[] byteArray = Encoding.UTF8.GetBytes(postData); WebRequest request = WebRequest.Create(“https://oauth.live.com/token”); request.ContentType […]

如何在javascript中访问ViewData

我在通过javascript访问ViewData对象时遇到问题。 我已经在控制器和视图的document.ready事件上设置了ViewData对象,我试图查看同一个ViewData对象的内容,如下所示: var test = ; alert(test); 在此之后我没有收到警告消息,并且在此语句之后我的脚本都不会运行。 我假设这个脚本无效,从而杀死了一切。 我已经尝试过这个相同脚本的几个不同变体而没有任何运气。 我在这里缺少什么? 先谢谢,比利

ASP.NET MVC:如何将列表(从Model中的类)传递到View中的转发器?

我该怎么办? 我已经开始使用MVC了,我遇到了传递数据的问题。 我的具体问题是我在模型中拥有的对象列表,我需要在View中访问并迭代。 提前致谢。

ASP.NET MVC Html.ActionLink维护路由值

我有一个问题,在这里几乎被问到: asp.net mvc Html.ActionLink()保留我不想要的路由值 然而,最终的解决方案是一个纯粹而简单的kludge,我真的很想知道为什么会发生这种情况,如果有人可以向我解释一下呢? 为了完整起见,可以非常轻松地重新创建场景: 创建一个新的MVC Web应用程序。 跑吧。 访问“关于”选项卡修改要读取的URL / Home / About / Flib – 这显然会引导您使用我们不关心的ID为“Flib”的操作。 请注意,现在关于About的顶级菜单链接实际上链接到/ Home / About / Flib – 据我所知这是错误的,因为我现在绝对没有办法使用站点链接回到/ Home / About 我真的不明白为什么我应该被强制修改我的所有Html.ActionLinks以包含路由值的new { id = string.Empty }和htmlAttribs的null。 这似乎特别糟糕,因为我已经指定id = 0作为路线本身的一部分。 希望我在这里错过了一个技巧。

避免硬编码控制器和操作名称

ASP.NET MVC似乎鼓励我使用硬编码字符串来引用控制器和操作。 例如,在控制器中: return RedirectToAction(“Index”, “Home”); 或者,在一个视图中: Html.RenderPartial(“Index”, “Home”); 我不想在我的代码中使用硬编码字符串。 我该怎么做才能避免这种情况?

iTextSharp添加(css样式或css文件)并下载pdf文件

终于搞定了 var inputString = @” Customer Name Customer’s Address XYZ Bhubaneswar MNP Cuttack “; List cssFiles = new List(); cssFiles.Add(@”/Content/bootstrap.css”); var output = new MemoryStream(); var input = new MemoryStream(Encoding.UTF8.GetBytes(inputString)); var document = new Document(); var writer = PdfWriter.GetInstance(document, output); writer.CloseStream = false; document.Open(); var htmlContext = new HtmlPipelineContext(null); htmlContext.SetTagFactory(iTextSharp.tool.xml.html.Tags.GetHtmlTagProcessorFactory()); ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false); cssFiles.ForEach(i […]

批判我简单的MVP Winforms应用程序

我试图围绕C#/ Winforms应用程序中使用的MVP模式。 所以我创建了一个简单的“记事本”,就像应用程序一样,试图找出所有细节。 我的目标是创建一些能够执行open,save,new的经典windows行为以及在标题栏中反映已保存文件名称的内容。 此外,当有未保存的更改时,标题栏应包含*。 所以我创建了一个视图和一个管理应用程序持久性状态的演示者。 我考虑过的一个改进就是打破文本处理代码,以便视图/演示者真正是一个单一用途的实体。 这是一个参考屏幕截图… 我在下面列出了所有相关文件。 我对我是否以正确的方式完成它或者是否有改进方法的反馈感兴趣。 NoteModel.cs: public class NoteModel : INotifyPropertyChanged { public string Filename { get; set; } public bool IsDirty { get; set; } string _sText; public readonly string DefaultName = “Untitled.txt”; public string TheText { get { return _sText; } set { _sText = value; PropertyHasChanged(“TheText”); } […]

FacebookApplication.VerifyAuthentication(_httpContext,GenerateLocalCallbackUri())在Facebook上返回null

我使用nopcommerce开发了一个mvc 5应用程序,我使用外部回调它使用facebook登录它正在工作,但现在它不工作,我无法找到实际问题。 并使用下面的代码 this.FacebookApplication.VerifyAuthentication(_httpContext, GenerateLocalCallbackUri()); 并且它返回我总是null并且身份validation状态失败我在网上搜索并做了所有事情并按照这些步骤但仍然无法登录facebook。 我的代码在FacebookProviderAuthorizer.cs中是这样的 private AuthorizeState VerifyAuthentication(string returnUrl) { var authResult = DotNetOpenAuth.AspNet.Clients.FacebookApplication.VerifyAuthentication(_httpContext, GenerateLocalCallbackUri()); if (authResult.IsSuccessful) { } } 然后编写回调方法 private Uri GenerateLocalCallbackUri() { string url = string.Format(“{0}plugins/externalauthFacebook/logincallback/”, _webHelper.GetStoreLocation()); return new Uri(url); } 然后生成服务登录URL private Uri GenerateServiceLoginUrl() { //code copied from DotNetOpenAuth.AspNet.Clients.FacebookClient file var builder = new UriBuilder(“https://www.facebook.com/dialog/oauth”); var args = new […]