Tag: asp.net

对HttpContext.Current.Session的静态引用是否为所有用户返回相同的会话?

在同一Web应用程序的多个用户方面,以下代码是否存在问题? 我的意思是,我知道一个纯静态字符串将在单个ASP.NET应用程序的所有会话中共享,但鉴于这明确引用了Current.Session ,即使它是静态的,它似乎总是引用“当前用户”的会话实例。 但是一个错误正在发生,可以解释为每个人共享Mode的当前值,从而最近的更改覆盖其他人的模式值。 (作为背景:此字符串位于整个应用程序中使用的Helpers类中。我不希望在整个应用程序中对Session[“Mode”]进行硬编码引用,并且不希望必须传递Session[“Mode”]来自aspx.cs页面的每个方法调用中的Session[“Mode”] 。) public static string Mode { get { var value = HttpContext.Current.Session[“Mode”]; return (value ?? string.Empty).ToString(); } set { HttpContext.Current.Session[“Mode”] = value; } }

ASP.NETexception:无法解析远程名称:’apiconnector.com’

正如标题所示,我从ASP.NET页面获得以下exception 无法解析远程名称:’apiconnector.com’ 然而,我可以从浏览器导航到这个地址,所以我知道它是可访问的。 为什么ASP.NET无法导航到此地址? 编辑:我怎么“准确地”导航? 好的,基本上我已经导入了WSDL作为服务引用。 我所做的就是从服务引用中调用方法。 这是进行实际导航的服务参考。 服务引用配置包含以下XML

WebAPI DataMember通过application / x-www-form-urlencoded进行de / serial化时不使用的名称

处理HTTP POST表单请求时,已花费几个小时尝试解决DataMemberAttribute上忽略的Name属性的问题( Content-Type: application/x-www-form-urlencoded )。 我在.NET 4.5上运行Microsoft.AspNet.WebApi 5.2.3应用程序,由IIS托管。 我有这个模型(演示): // library public interface IPayload { string DataId { get; set; } int RelationId { get; set; } } // web app project [DataContract] public class MyPayload : IPayload { [Required] [DataMember(Name = “id”)] public string DataId { get; set; } [Required] [DataMember(Name = “rel”)] public […]

ASP.NET WebApi IExceptionLogger不捕获exception

我正在尝试设置如下所述的全局exception处理程序: Web API全局error handling 。 我设置了一个在控制器构造函数中抛出exception的情况。但是我的exception没有被记录。相反,WebApi只是将exception和完整堆栈跟踪作为JSON消息返回给调用客户端。 我不知道它是否重要,但我的控制器操作正在使用async / await,如下所示: [HttpGet, Route(“GetLocationNames”)] public async Task<IEnumerable> Get() { return await adapter.GetLocationNames(); } 我有以下实现: using log4net; using System.Threading.Tasks; using System.Web.Http.ExceptionHandling; namespace warehouse.management.api { public class Log4NetExceptionLogger : ExceptionLogger { private ILog log = LogManager.GetLogger(typeof(Log4NetExceptionLogger)); public async override Task LogAsync(ExceptionLoggerContext context, System.Threading.CancellationToken cancellationToken) { log.Error(“An unhandled exception occurred.”, context.Exception); […]

如何在ASP.NET Core 1 MVC 6中为单元/集成测试模拟IFormFile?

我想编写用于在ASP.NET Core 1中上传文件的测试,但似乎找不到一种模拟/实例化从IFormFile派生的对象的好方法。 有关如何做到这一点的任何建议? 谢谢。

在ASP.NET身份中获取使用Microsoft帐户进行身份validation的用户的电子邮件

我正在使用VS2013中新的MVC 5模板附带的ASP.NET标识。 我已配置外部登录提供商,以便人们可以使用Google,Facebook或Microsoft注册。 但是,我仍然希望获得人们的电子邮件地址(例如,用于通知,更新等)。 默认情况下, app.UseGoogleAuthentication()也会请求用户的电子邮件地址。 对于Facebook,我创建了一个新的FacebookAuthenticationOptions类实例,并添加了以下范围: facebook.Scope.Add(“email”) 。 这也有效。 我在使用Microsoft帐户的人收到电子邮件时遇到问题。 MicrosoftAccountAuthenticationOptions还具有Scope属性,但添加email似乎不起作用。 在文档中,我看到有一个范围wl.emails但它返回一组电子邮件地址,我不确定这是否等同于Facebook的email 。 有人建议如何在validation时将电子邮件地址作为索赔吗?

ASP.NET回发在URL重写中产生问题?

我在我的asp.net项目中使用Intelligencia进行url重写。 我通过研究url重写解决了很多问题但是现在我遇到了关于页面回发的一个问题。 页面回发将我的重写url更改为原始url。 所以,有人帮我从这里出去。

HttpUtility.ParseQueryString()始终将特殊字符编码为unicode

当我从System.Web使用HttpUtility时,我发现每次调用方法.ParseQueryString我都有特殊的字符编码到他们的unicode等效表示。 我尝试了许多不同的编码类型,似乎都产生了相同的结果。 我的代码示例如下: string text = “ich möchte diese Bild für andere freigeben” var urlBuilder = new UriBuilder(url); var query = HttpUtility.ParseQueryString(urlBuilder.Query, Encoding.UTF8); query[“text”] = text; urlBuilder.Query = query.ToString(); string finalUrl = urlBuilder.ToString(); 而且我将从中接受的finalUrl中的字符串将是: 文本= ICH + M%u00f6chte + diese +图片报+ F%u00fcr + ANDERE + freigeben 我尝试过使用Encoding.UTF8 , Encoding.ASCII和Encoding.Default ,它们都产生相同的结果。 我该怎么做才能达到我想要的UrlEncoding格式: 文本= ICH%20米%C3%B6chte%20diese%20Bild%20F%C3%BCR%20andere%20freigeben 一如既往,提前感谢您的帮助/建议!

无法检测Session变量是否存在

我正在尝试确定Session变量是否存在,但我收到错误: System.NullReferenceException:未将对象引用设置为对象的实例。 码: // Check if the “company_path” exists in the Session context if (System.Web.HttpContext.Current.Session[“company_path”].ToString() != null) { // Session exists, set it company_path = System.Web.HttpContext.Current.Session[“company_path”].ToString(); } else { // Session doesn’t exist, set it to the default company_path = “/reflex/SMD”; } 那是因为Session名称“company_path”不存在,但我无法检测到它!

自动映射 – 它是否只能映射源和目标对象中的现有属性?

我有一个简单的更新function: public void Update(Users user) { tblUserData userData = _context.tblUserDatas.Where(u => u.IDUSER == user.IDUSER).FirstOrDefault(); if (userData != null) { Mapper.CreateMap(); userData = Mapper.Map(user); _context.SaveChanges() } } userData是一个EF实体,它的Entity Key属性被取消,因为我相信它存在于目标对象中,但不存在于源对象中,因此它将使用其默认值进行映射(对于Entity Key,它为null ) 所以,我的问题是,Automapper是否可以配置为仅尝试映射源对象和目标对象中存在的属性? 我想要跳过实体键和导航属性之类的东西。