小编Evi*_*lDr的帖子

IIS8中的IIS_IUSRS和IUSR权限

我刚刚从Win2003上的IIS6迁移到Win2012上的IIS8,用于托管ASP.NET应用程序.

在我的应用程序的一个特定文件夹中,我需要创建和删除文件.将文件复制到新服务器后,当我尝试删除文件时,我一直看到以下错误:

访问路径'D:\ WebSites\myapp.co.uk\companydata\filename.pdf'被拒绝.

当我检查IIS时,我看到应用程序在DefaultAppPool帐户下运行,但是,我从未在此文件夹上设置Windows权限以包含IIS AppPool\DefaultAppPool

相反,为了停止尖叫客户,我在该文件夹上授予了以下权限:

IUSR

  • 阅读并执行
  • 列出文件夹内容

IIS_IUSRS

  • 修改
  • 阅读并执行
  • 列出文件夹内容

这似乎有效,但我担心已经设置了太多的权限.我在网上阅读了有关IUSR是否真的需要的相互矛盾的信息.任何人都可以澄清哪些用户/权限足以创建和删除此文件夹上的文档吗?此外,IUSR是IIS_IUSRS组的一部分吗?

更新和解决方案

请参阅下面的答案.我不得不遗憾地做到这一点,因为最近的一些建议没有经过深思熟虑,甚至是安全的(IMO).

iis permissions asp.net-4.5 iis-8 windows-server-2012

134
推荐指数
4
解决办法
35万
查看次数

SQL Server中varbinary(max)中的最大实空间

我在sql表中保存文件(任何类型),使用varbinary(max),我发现这个数据类型的最大用量是8000,但8000是什么意思?

在线文档说这是8000字节,这意味着要保存的文件的最大大小是8000/1024 = 7.8125 KB ?,

我开始测试,我可以存储的最大文件是29.9 MB,如果我选择一个更大的文件,得到一个Sqlexception"字符串或二进制数据将被截断.该语句已被终止." ...

非常感谢任何评论.

sql-server varbinary

13
推荐指数
4
解决办法
6万
查看次数

获取IIS网站应用程序名称C#.Net

我正在尝试获取我当前所在的Web应用程序名称.(我的应用程序代码部署在IIS中).

我可以获取IIS服务器名称:

string IISserverName = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];
Run Code Online (Sandbox Code Playgroud)

目前的网站:

string currentWebSiteName = HostingEnvironment.ApplicationHost.GetSiteName();
Run Code Online (Sandbox Code Playgroud)

我找不到获取Web应用程序名称的方法!因为我需要根据我的Web应用程序构建一个路径来获取所有虚拟目录.

.net iis web

9
推荐指数
2
解决办法
2万
查看次数

为什么en-dash( - )会触发非法的XML字符错误(C#/ SSMS)?

这不是关于如何克服"XML解析:...非法xml字符"错误的问题,而是关于它为什么会发生的问题? 我知道有修复(1,2,3),但需要知道问题出在哪里,从选择最佳的解决方案之前出现(是什么原因导致引擎盖下的错误?).

我们使用C#调用基于Java的Web服务.从返回的强类型数据中,我们创建了一个将传递给SQL Server的XML文件.Web服务数据使用UTF-8进行编码,因此在C#中我们创建文件,并在适当的地方指定UTF-8:

var encodingType = Encoding.UTF8;
// logic removed...
var xdoc = new XDocument();
xdoc.Declaration = new XDeclaration("1.0", encodingType.WebName, "yes");
// logic removed...
System.IO.File.WriteAllText(xmlFullPath, xdoc.Declaration.ToString() + xdoc.Document.ToString(), encodingType);
Run Code Online (Sandbox Code Playgroud)

这将在磁盘上创建一个包含以下(缩写)数据的XML文件:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<records>
  <r RecordName="Option - Foo" />
  <r RecordName="Option – Bar" />
</records>
Run Code Online (Sandbox Code Playgroud)

请注意,在第二条记录中,-与...不同.我相信第二个例子是冲刺.

如果我在Firefox/IE/VS2015中打开该XML文件.它打开没有错误.在W3C XML验证程序也能正常工作.但是,SSMS 2012不喜欢它:

declare @xml XML = '<?xml version="1.0" encoding="utf-8" standalone="yes"?><records>
  <r RecordName="Option - …
Run Code Online (Sandbox Code Playgroud)

c# xml t-sql sql-server

8
推荐指数
3
解决办法
7546
查看次数

为什么clip-path(和其他属性)会影响DOM中稍后元素的堆叠顺序(z-index)?

之前已经有人问过这个问题,但只是z-index在 CSS 中明确定义了。

我试图在标题上使用剪辑路径,然后从该标题顶部下方的元素内拉出图像。但是,一旦我clip-path在标题上定义了 a ,图像(它应该位于堆叠顺序的较高位置,因为它稍后出现在代码中)就会位于标题下方

body {
  padding: 1em;
}

header {
  background: #a00;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 5em), 0 100%);
}

h1 {
  margin: 0;
  padding: 2em;
  font: 300%;
  color: white;
  text-align: center;
}

section {
  background: #ccc;
  padding-top:5em;
  margin-top:-5em;
}

img {
  margin-top: -10em;
  
}
Run Code Online (Sandbox Code Playgroud)
<header>
  <h1>Header Content</h1>
</header>

<section>
  <img src="https://via.placeholder.com/330/0000FF/808080"/>
</section>
Run Code Online (Sandbox Code Playgroud)

我希望图像位于标题上方。经过更多尝试后,我发现如果我position:relative在图像上设置 - 它会起作用:

body {
      padding: 1em;
    }

    header { …
Run Code Online (Sandbox Code Playgroud)

css clip-path

8
推荐指数
1
解决办法
1827
查看次数

锁定Azure VM对特定IP的访问

我们计划在预览时立即注册Azure VM试用版.在此期间,有人可以澄清以下内容吗?

目前,用户可以使用远程桌面连接(RDC)访问Azure VM实例.但是,是否可以"锁定"Azure VM实例,以便只有指定的IP地址可以通过RDC连接?

这将为我们提供一些额外的安全性,只知道我们的固定办公室IP可以连接到我们的实时数据服务器.还是有不同的方法?

hosting azure azure-virtual-machine

7
推荐指数
1
解决办法
6776
查看次数

处理AuthenticationResult来自同一页面中的不同提供者

我正在使用LiveID和Google提供商将OpenID集成到我现有的应用程序中.在我的登录页面上,除了原始登录字段之外,我还添加了"使用Google登录"和"使用Microsoft登录"按钮.

我可以成功读取上述两个提供商的AuthenticationResult数据,但是我是按照以下方式完成的...

对于新的登录按钮,我制作了一个返回URL,以便在用户返回时区分它们:

Protected Sub btn_google_Click(sender As Object, e As EventArgs) Handles btn_google.Click
    Dim client As New GoogleOpenIdClient
    Dim u As New System.Uri("http://www.mytest.com/login.aspx?action=signin&provider=google")
    client.RequestAuthentication(New HttpContextWrapper(HttpContext.Current), u)
End Sub

Protected Sub btn_live_Click(sender As Object, e As EventArgs) Handles btn_live.Click
    Dim client As New MicrosoftClient("xyz", "12345")
    Dim u As New System.Uri("http://www.mytest.com/login.aspx?action=signin&provider=microsoft")
    client.RequestAuthentication(New HttpContextWrapper(HttpContext.Current), u)
End Sub
Run Code Online (Sandbox Code Playgroud)

因此,当用户重定向回login.aspx时,我会进行以下检查以处理登录功能:

If Not Page.IsPostBack Then
    If Request.QueryString("action") IsNot Nothing AndAlso Request.QueryString("action").Trim = "signin" Then
        If Request.QueryString("provider") IsNot Nothing AndAlso Request.QueryString("provider").Trim <> String.Empty Then
            Select Case Request.QueryString("provider").Trim …
Run Code Online (Sandbox Code Playgroud)

asp.net openid dotnetopenauth liveid asp.net-4.5

6
推荐指数
1
解决办法
400
查看次数

查询以查找所有FK约束及其引用的表列

我有一个大的SQL 2012数据库(100个表),其中我需要找到参照操作设置为CASCADE(更新或删除)的所有约束.

这个有用的答案中,我看到我可以使用以下T-SQL列出约束(略微改编):

SELECT
    name,
    delete_referential_action_desc,
    update_referential_action_desc
FROM
    sys.foreign_keys
WHERE
    update_referential_action_desc = 'CASCADE' OR
    delete_referential_action_desc = 'CASCADE';
Run Code Online (Sandbox Code Playgroud)

这提供了一个有用的列表:

name        delete_referential_action_desc      update_referential_action_desc
----------------------------------------------------------------------
FK_name001  CASCADE                             CASCADE
FK_name002  CASCADE                             NO_ACTION
FK_name003  CASCADE                             NO_ACTION
Run Code Online (Sandbox Code Playgroud)

但是,是否可以扩展代码,以便为每个约束包含相应的表名和列名,例如?

name        delete_referential_action_desc      update_referential_action_desc  ParentTable ParentCol   ChildTable  ChildCol
----------------------------------------------------------------------------------------------------------------------------
FK_name001  CASCADE                             CASCADE                         Table1      Col1        Table2      Col2
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的编辑从中提取值sys.objects但无法弄清楚它是如何工作的,或者这是否是正确的方法.

更新

请注意,我不想ALTER任何东西,或作出任何架构更改.我只是想查看一个列表,以便我可以手动执行进一步的操作.我没有信心或经验来编辑这个巨大的查询来拉出重点.

t-sql referential-integrity sql-server-2012

6
推荐指数
1
解决办法
3871
查看次数

展开元素宽度以匹配展开的屏幕宽度

几年前提出了一个问题,即如果元素的宽度大于屏幕宽度,那么其他块元素(h1等)不会扩展到匹配(请参阅小提示,即宽元素出现后h1宽度不会改变) :

function addElement(){
    $("#para").after('<div class="wide">Wide</div>');
    $("a").fadeOut();
    // $("h1").width($(".wide").width()); // <-- trying to avoid needing this
}
Run Code Online (Sandbox Code Playgroud)
body {margin:0; padding:0}
h1 {background-color:#eee}
.wide {background-color:#00c; color:#fff; width:110%; margin-top:1em; margin-bottom:1em}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<h1>Header 1</h1>
<p id="para">
    <a href="#" onclick="addElement(); return false;">Add wide element</a>
</p>
Run Code Online (Sandbox Code Playgroud)

虽然最初的答案确实有效,但现在CSS3更为主流,我想知道是否有更智能的方法来实现目标,而无需使用JQuery手动调整大小?例如,是否有纯CSS解决方案?我事先并不知道元素的宽度(它是ERP系统的数据表,有时可能非常宽).

如果没有,我很乐意删除这个问题,但是想不出一种方法可以将注意力引回到一个较旧的问题,即现在可能存在更好的解决方案.

css

6
推荐指数
1
解决办法
357
查看次数

从两个表中删除"等效"数据

我需要在SQL Server 2012过程中执行以下伪逻辑,基于表变量和声明为这样的表:

DECLARE @tmp TABLE
    (
    ID int IDENTITY(1,1),
    UserID int NOT NULL,
    SgsID int NOT NULL
    )

CREATE TABLE #Table1
    (
    ID int IDENTITY(1,1),
    UserID int NOT NULL,
    SgsID int NOT NULL
    )
Run Code Online (Sandbox Code Playgroud)
  1. 对于表变量中的每一行数据 @tmp
  2. 删除行Table1,其中UserID/SgsID组合匹配UserID/SgsIDTable1
  3. UserID/SgsID@tmp已删除的组合中删除这些组合Table1

我一直在研究不同的方法,比如使用OUTPUT INTOINTERSECT,但是不能编写一个删除两个表的查询(实际上我认为它甚至不可能).

我已经通过使用以下代码实现了上述步骤,但是,我想知道是否有任何T-SQL专业人员可以建议更简洁/有效的方法?

有关在线版本,请参见SQLFiddle

CREATE TABLE #Table1
    (
    ID int IDENTITY(1,1),
    UserID int NOT NULL,
    SgsID int NOT NULL
    )

INSERT INTO #Table1 …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2012

5
推荐指数
1
解决办法
253
查看次数