Tag: asp.net

如何不中止http响应c#

在将文件发送给用户进行下载后,我需要运行几种方法。 发生的事情是,在我向用户发送文件后,响应被中止,我在response.end()之后不再做任何事情。 例如,这是我的示例代码: Response.Clear(); Response.AddHeader(“content-disposition”, “attachment; filename=test.pdf”); Response.ContentType = “application/pdf”; byte[] a = System.Text.Encoding.UTF8.GetBytes(“test”); Response.BinaryWrite(a); Response.End(); StartNextMethod(); Response.Redirect(URL); 因此,在此示例中, StartNextMethod和Response.Redirect未执行。 我尝试的是我使用以下代码创建了一个单独的处理程序(ashx): public void ProcessRequest(HttpContext context) { context.Response.Clear(); context.Response.AddHeader(“content-disposition”, “attachment; filename=test.pdf”); context.Response.ContentType = “application/pdf”; byte[] a = System.Text.Encoding.UTF8.GetBytes(“test”); context.Response.BinaryWrite(a); context.Response.End(); } 并称之为: Download d = new Download(); d.ProcessRequest(HttpContext.Current); StartNextMethod(); Response.Redirect(URL); 但同样的错误发生了。 我试图用CompleteRequest替换Response.End,但它没有帮助。 我想问题是我正在使用HttpContext.Current但应该使用单独的响应流。 那是对的吗? 我如何在一个单独的方法中一般地做到这一点(假设我希望我的处理程序接受数据和内容类型的字节数组,并可从单独的响应下载。我真的不想使用单独的页面进行响应。 UPDATE […]

如何使用自定义IHttpModule和HttpRequestfilter修改POST请求?

概观 我希望能够将请求参数和内容修改为第三方Web服务(ArcGIS Server)。 这将用于创建存在于任何客户端应用程序和服务器应用程序之间的安全层。 我认为我找到了一个解决方案,但我目前在实施方面遇到了一些困难。 可能的解决方案:使用自定义请求筛选器修改请求 对于解决方案,我基于MSDN上显示的示例松散地实现了自定义请求filter。 我已经“增强”了代码,以便我可以使用正则表达式搜索和替换必要的内容。 这包括: 将内容(存储在字节数组中)转换为字符串。 搜索字符串并执行任何必要的修改。 将修改后的字符串转换为字节数组并将其写入缓冲区。 一个例子如下所示: public override int Read(byte[] buffer, int offset, int count) { int bytesRead = _stream.Read(buffer, offset, count); string orgContent = Encoding.UTF8.GetString(buffer, offset, bytesRead); string orgContentDecoded = HttpUtility.UrlDecode(orgContent); string layersPattern = @”&layers=(show|hide|include|exclude):([0-9]+,?)+”; Regex layersRegex = new Regex(layersPattern, RegexOptions.IgnoreCase); string[] permittedLayers = new string[] { […]

将CheckedChanged事件复选框添加到动态GridView

我想动态地向动态GridView添加一个复选框和一个Event。 即对于网格,我必须根据数据库添加动态选中或取消选中的复选框。 通过单击复选框本身,我想更新数据库。 为此,我需要将事件与复选框一起动态加载。 我完成的是一个静态版本,在这里展出: 在数据库RoleID(管理员,采购官等)中,存储ActivityID(离开应用程序等)和OperationID(保存,编辑等)。 对于Admin(roleid 1),第一行表示允许活动离开应用程序(Activityid 3)的保存操作(OperationID 1)。

ASP.NET中的每个请求的entity framework对象上下文?

每个请求使用一个ObjectContext被认为是一种好习惯吗? 我读过这些对象应该是短暂的并且实例化的成本并不高,但这是否会使每个请求对其中一个具有吸引力呢? 如果是,是否有任何模式可以正确实现这一点?

在ASP.NET中获取域用户ID

我有一个ASP.NET应用程序,员工登录到Windows,然后他们必须从一长串名称中选择他们的名字并登录到应用程序。 我想要做的是,一旦员工打开应用程序,它就会从下拉框中选择他们的名字。 我相信如果我可以在页面加载时获得Windows用户ID,那么我可以根据登录的Windows用户使我的代码选择用户。 问题是。 如何获得当前登录C#Asp.net的Windows用户ID? 有任何想法吗。

如何在转发器控制中查找控件?

我想启用或禁用’ParticipateBtn’,具体取决于EventStartDate。 我收到此错误:对象引用未设置为对象的实例。 开始日期: <asp:Button runat="server" ID="ParticipateBtn" CommandName="Participate" CommandArgument='’ Text=”Participate” />   背后的代码…… //Code behind protected string CheckEnability(DateTime eventstartdate) { if (eventstartdate.Date < DateTime.Now.Date) { Button btn = (Button)Repeater1.FindControl("ParticipateBtn"); btn.Enabled = false; } return eventstartdate.ToString("yyyy-MM-dd"); }

HttpContext.Current.User未填充启用Windows身份validation

我有一个使用Windows身份validation的asp.net Intranet应用程序。 我几年前用VS 2005创建了应用程序,并且Windows身份validation位工作得很好。 我的web.config有以下内容(内部配置 – > system.web元素): 我在Firefox中对此进行了测试以确认是否需要凭据,实际上我在首次访问网站时提示我输入网络凭据,如果它们无效,我会被拒绝。 但是,当我尝试访问HttpContext.Current.User.Identity时,该对象具有Name和AuthenticationType的空字符串,以及Authenticated = false。 我想我可能需要在查看互联网后启用WindowsTokenRoleProvider,这并没有改变任何东西。 自从我上次看到它工作以来我做过的两件事是通过转换向导将项目升级到VS 2008,而且我也把它放了几个月,而我的同事可能在这里或那里工作过。 我很确定影响我的User.Identity的唯一因素是上面提到的web.config中的值,但显然我做错了。 其他人遇到类似问题或看到我做错了什么? 谢谢。

发布到IIS 7.5时,ASP.NET Core 404错误

我正在使用Visual Studio 2015将我的ASP.NET核心应用程序发布到IIS 7.5。 我要做的就是在我的wwwroot中查看正常的default.htm页面。 当我使用VS的IIS Express时,一切正常,但是当我发布到IIS 7.5并指向Visual Studio在发布时创建的wwwroot文件夹的物理路径时,我只得到一个空白屏幕(404)。 有什么奇怪的是当我从startup.cs的Configure方法中运行默认的app.run方法时,它完美地工作: app.Run(async (context) => { await context.Response.WriteAsync(“Hello World!”); }); 但是,当我评论出来时,使用app.UseDefaultFiles()和app.UseStaticFiles(),我什么都没得到。 这是我的Startup.cs文件: public class Startup { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 public void […]

Azure Web应用程序服务,使用混合连接管理器使用HttpClient调用onpremise WEB API

我们在本地网络机器上部署了Web服务(asp.net core mvc)。 我们正尝试使用部署在Azure上的App Service来调用这些WEB API。 但是当我们尝试使用“HTTP”协议连接它时,它会给出超时错误或任务被取消错误。 在“HTTPS”的情况下,它给出“ 发生安全错误错误 ”。 我们在Azure App Service上创建了Hybrid连接,以连接到onpremise web api服务,该服务在线显示80和443端口。 我们也在本地网络机器上设置了Hybrid Connection Manager。 以下是用于调用代码的代码段,该代码段部署在Azure App Service上(例如https://xyz.azurewebsite.com ) try { var httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromMinutes(60); httpClient.BaseAddress = new Uri(“https://onpremise”); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; //Simple […]

如何使用Razor语法获取ASP.NET MVC 4中文本中URL的链接?

我有一个带文本字段的模型。 该文本可以包含多个URL。 它不必包含URL,也没有特定的格式。 运用 @Html.DisplayFor(model => model.TextWithSomeUrls) 当然,文本和URL显示为普通文本。 我想将URL显示为工作单个链接。 在ASP.NET / Razor中是否有一个帮助方法? 编辑 :现在输出是: http://www.google.com, foo: bar; http://www.yahoo.com 这正是文本字段的内容。 但是我希望获取URL,并且只将URL呈现为如下链接: http://www.google.com, foo: bar; http://www.yahoo.com 我的解决方案 public static partial class HtmlExtensions { private const string urlRegEx = @”((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)”; public static MvcHtmlString DisplayWithLinksFor(this HtmlHelper htmlHelper, Expression<Func> expression) { string content = GetContent(htmlHelper, expression); string result = ReplaceUrlsWithLinks(content); […]