zoukankan      html  css  js  c++  java
  • 如何设置windows服务以及web Service服务的访问权限

          如果你的软件需要访问本地的文件或文件夹,并进行相关的操作时,那么在Windows Service2003系统中部署时,总是碰到一些莫名其妙的错误,明明在其他地方可以运行,一部署后,就是不能运行,跟踪调试时,才发现原来是权限的问题。

    设置windows服务的访问权限

          如果你的程序里面有一个windows服务,而且还要访问本地的文件,那么你需要为windows服务的用户设置对这个文件的访问权限。在 Windows 操作系统中,每个服务都运行在一个用户帐户安全上下文中。你可以在“计算机”—“管理”—“服务”里面找到你的服务,然后右键“属性”,切换到“登录”选项卡,你就可以看到你的服务是运行在哪个账户上的。

    一般自己创建的服务都是AUTHORITY\LocalService这个账户。

    clip_image002

       像Sql Server是运行在NetworkService账户上的

    clip_image004

    (更多关于windows服务用户账户,可以参考这篇文章Windows服务用户账户)。

          找到了这个用户就好办了,现在我们找到在Windows服务里面会访问的那个本地文件夹。比如,你在程序里面会操作C:\新建文件夹,那么你就把这个文件夹选中,右键“属性”——“安全”

    clip_image006

          一看,上面没有LocalService这个用户,没关系,点击“添加”

    clip_image008

          点击“高级”

    clip_image010

         点击“立刻查找”

    clip_image012

           是不是看到了这个用户。选中它。点击确定,回到第一窗体上。

    clip_image014

          选中这个用户,为它赋予权限,你可以根据实际需要赋予相应的权限。

    clip_image014[1]

          Ok,这样就设置好了,你再通过Windows服务来访问这个文件,不管对它进行什么操作都不会有权限的问题了。

    设置WebService的访问权限

           如果你的程序会通过Web Service来访问本地的文件夹,那么也需要设置权限。Web Service也有一个用户,这个用户默认的就是NetWork Service用户。

           设置的步骤与上面的类似,也是找到那个文件夹,然后查找到这个用户,如下图,然后点击确定,最后赋给它相应的操作权限。

    clip_image016

          设置完毕后,就可以顺利的访问了。

          如果你嫌麻烦,你可以选中那个文件夹,然后给它的EveryOne用户赋予所有的权限,那么不管是Windows服务,还Web Service都可以进行访问,不过这样可能会带来安全问题.

  • 相关阅读:
    20200318
    20200317
    Thinkphp 操作多个数据库
    base格式图片转文件存储
    Thinkphp POST 和 GET 传值
    Thinkphp调用微信扫一扫实例,学会再也不怕客户在微信提的奇葩要求了
    centos 安装ngnix mysql php
    PHP 区分微信、支付宝、QQ扫码
    PHP秒数计算时分秒
    Thinkphp 获取访问者的ip
  • 原文地址:https://www.cnblogs.com/xiaoxiangfeizi/p/2454713.html
Copyright © 2011-2022 走看看